#include <stdio.h>
#include <stdlib.h>


int* nextGreaterElement(int* nums1, int nums1Size, int* nums2, int nums2Size, int* returnSize)
{
    int *p = malloc(sizeof(int)*nums1Size);
    *returnSize = nums1Size;
    if(nums1Size >= nums2Size)
    {
        return p = 0;
    }
    for(int i = 0;i < nums1Size;i++)
    {
        for(int j = 0;j < nums2Size;j++)
        {
            if(nums1[i] == nums2[j] && j+1 < nums2Size)
            {
                p[i] = nums2[j] > nums2[j+1] ? -1 : nums2[j+1];
                break;
            }
            if(nums1[i] == nums2[j] && j+1 == nums2Size)
            {
                p[i] = -1;
            }
        }
    }
    return p;
}

int main()
{
    int nums1[] = {4,1,2};
    int nums2[] = {1,3,4,2};
    int nums1Size = sizeof(nums1)/sizeof(nums1[0]);
    int nums2Size = sizeof(nums2)/sizeof(nums2[0]);
    int returnSize = 0;

    int *n = nextGreaterElement(nums1,nums1Size,nums2,nums2Size,&returnSize);
    for(int i = 0;i < returnSize;i++)
    {
        printf("%d ",n[i]);
    }
    printf("\n");
    return 0;
}